﻿//using System;
//using System.Collections.Generic;
//using System.Linq;
//using System.Text.RegularExpressions;
//
//namespace Outfish
//{
//	public class ProfileTimer {
//	
//		public ProfileTimer(){}
//	
//		/// <summary>Time how long it takes to run an action</summary>
//		public void Wrap( string name, Action func ){
//			this.Wrap( name, ()=>{ func(); return false; } );
//		}
//	
//		/// <summary>Time how long it takes to run an action</summary>
//		public T Wrap<T>(string name, Func<T> func ){
//	
//			DateTime begin = DateTime.Now;
//			try{
//				return func();
//			}
//			finally{
//				this.Stamp( name, DateTime.Now - begin );
//			}
//	
//		}
//	
//		public void Stamp(string name, TimeSpan delta){
//			if( this._count.ContainsKey( name ) == false ){ 
//				this._count.Add( name, 1 ); 
//				this._total.Add( name, delta );
//			} else {
//				++this._count[name];
//				this._total[name] += delta;
//			}
//		}
//	
//		public void ReportTimes(){
//		
//			var parts = this._count.Keys
//				.Select( key => {
//					double total = this._total[key].TotalMilliseconds;
//					int count = this._count[key];
//					return string.Format("\r\n{0}\t{1}\t{2}\t{3}", key, total/count, count, total );		
//				}).ToArray();
//		
//			System.IO.File.AppendAllText( "C:\\bob.txt", parts.Join("") );
//		}
//	
//		Dictionary<string,int> _count = new Dictionary<string, int>();
//		Dictionary<string,TimeSpan> _total = new Dictionary<string, TimeSpan>();
//	
//	}
//}
